Grid Computing
نويسنده:امين صفايي
Grid Computing يا شبكههاي متصل كامپيوتري مدل شبكهاي جديدي است كه با استفاده از پردازشگرهاي متصل به هم امكان انجامدادن عمليات حجيم محاسباتي را ميسر ميسازد. Gridها در واقع از منابع كامپيوترهاي متصل به شبكه استفاده ميكنند و ميتوانند با استفاده از برآيند نيروي اين منابع، محاسبات بسيار پيچيده را بهراحتي انجام دهند.
آنها اين كار را با قطعه قطعه كردن اين عمليات و سپردن هر قطعه بهكامپيوتري در شبكه انجام ميدهند. به عنوان مثال وقتي شما از كامپيوترتان براي مدتي استفاده نميكنيد و كامپيوتر شما به اصطلاح بهوضعيت محافظ نمايشگر يا Screensaver ميرود، از پردازشگر كامپيوتر شما هيچ استفادهاي نميشود. اما با استفاده از شبكههاي Grid ميتوان از حداكثر تواناييهاي پردازشگرها استفاده نمود و برنامهاي را در كامپيوتر قرار داد كه وقتي از سيستم استفادهاي نميشود، اين برنامه بتواند از نيروي بلااستفاده دستگاه بهره بگيرد و قسمتي از محاسبات بزرگ عملياتي را انجام دهد.
در اين مقاله اين پديده در فناوري اطلاعات مورد بحث قرار ميگيرد و اهميت استفاده از اين فناوري، پيچيدگيها، اجزاي تشكيل دهنده و استانداردهاي اين مدل بررسي ميشود و نشان داده خواهد شد كه با استفاده از اين مدل چگونه در وقت و زمان شما صرفهجويي ميشود.
گفتني است در حال حاضر بزرگترين شبكه Grid جهان در خدمت پروژه SETI@home براي يافتن حيات هوشمند فرازميني قرار دارد. در شماره 55 ماهنامه شبكه مصاحبهاي اختصاصي با دكتر دان ورتيمر، دانشمند ارشد اين پروژه توسط سردبير ماهنامه انجام شدهبود.
امروزه فناوري جديدي به نام Grid به عرصه ارتباطات الكترونيك قدم نهاده است كه براساسآن با دانلود كردن يك محافظ نمايشگر مخصوص ميتوانيم بهكامپيوترهاي شخصي خود اجازه دهيم كه وقتي از آن استفاده نميكنيم، به شبكه جهاني متصل شوند و به سيستمهاي بزرگ تحقيقاتي اجازه دهند از منابع آزاد و بلااستفاده سيستم ما استفاده نمايند.
امروزه تقريباً تمامي شركتها و سازمانهاي بزرگ، براي تبادل اطلاعات و فرستادن ايميل بهمشتريان خود از اينترنت استفاده ميكنند. پرسش اين است كه آيا بهراستي امكاناتي كه اينترنت در اختيار ما قرار ميدهد، فقط در فرستادن ايميل و داشتن وبسايت خلاصه ميشود؟ آيا اينترنت امكان استفاده از منابع سختافزاري سيستمهاي ديگر را نيز به ما ميدهد؟ پس از اينترنت چه ابزار يا بستري خواهد آمد؟
امروزه فناوري جديدي به نام Grid به عرصه ارتباطات قدم نهاده است كه براساس آن با دانلودكردن يك محافظ نمايشگر مخصوص ميتوانيم بهكامپيوترهاي شخصي خود اجازه دهيم كه وقتي از آن استفاده نميكنيم، به شبكه جهاني متصل شوند و به سيستمهاي بزرگ تحقيقاتي اجازه دهند از منابع آزاد و بلااستفاده سيستم ما استفاده نمايد. كامپيوترهاي امروزي مانند مغز انسان معمولا از بخش كوچكي از تواناييهاي خود استفاده ميكنند و اغلب به صورت غيرفعالند و منتظر اطلاعات ورودي ميمانند.
تصور كنيد كه اگر از منابع سختافزاري اين همه كامپيوتر غيرفعال استفاده شود و همه در يك كامپيوتر جمع شود، چه دستگاه پرقدرتي خواهيم داشت. Grid Computing با كمك به اينترنت زمينهاي را فراهم آورده است كه بتوان با استفاده از آن، از منابع سختافزاري سيستمهاي ديگر نيز استفاده نماييم.
ممكن است Grid براي افراد مختلف معاني متفاوتي داشته باشد، اما اگر بخواهيم تعريف سادهاي از آن داشته باشيم، ميتوانيم بگوييم Grid Computing در واقع بهشما اجازه ميدهد با استفاده از منابع سيستمهاي متصل به شبكه و ايجاد يك منبع بزرگ از سرويسها و امكانات اين سيستمها، مركزي بزرگ و قدرتمند به وجود آوريم كه توانايي انجامدادن عمليات بسيار پيچيدهاي را داشته باشد كه يك سيستم بهتنهايي نميتواند انجام دهد. بهنحوي كه از ديد استفادهكنندگان اين سيستمهاي بزرگ، اين عمليات تنها از طريق يك سيستم انجام ميشود.
Grid Computing در حقيقت نسل جديدي از شبكههاي توزيع يافته است و همانند اينترنت به كاربران خود اجازه ميدهد فايلها را به اشتراك بگذارند. بهعلاوه، منابع مشتركي از اطلاعات را براي استفادهكنندگان فراهم ميكند. با استفاده از اين سيستمها ميتوان منابع كامپيوترهاي ناهمگون را بهاشتراك گذاشت. هدف اصلي Grid استفاده از اين منابع مشترك مانند قدرت پردازنده، پهناي باند، پايگاه اطلاعاتي و در اختيار گذاردن آن براي كامپيوتر مركزي است.
Gridهاي اطلاعاتي يا Data Grid موظفند اطلاعات را ذخيره كنند و آنها را در اختيار كاربران قرار دهند. كاربران اين سيستمها بدون آنكه از موقعيت جغرافيايي و مكاني اين اطلاعات آگاه باشند، به اطلاعات دسترسي دارند. مثلاً تصور كنيد كه دو دانشگاه در دو سوي دنيا يكي در ايران و ديگري در انگلستان روي يك مطلب علميمشترك تحقيق ميكنند و هر يك از آنها اطلاعات خاص خود را ذخيره ميكند و ميخواهد دانشگاه ديگر نيز به برخي از اين اطلاعات (نه تماميآن) دسترسي داشته باشد. اين دانشگاهها ميتوانند از يك Data Grid استفاده كنند و اطلاعات خود را با ضريب امنيتي بالايي با هم بهاشتراك بگذارند.
در اين نوع Grid دستگاههاي متصل بهسيستم نياز بهقدرت زياد ندارند و فقط مسئول به اشتراك گذاشتن اطلاعات هستند. از طرف ديگر Grid هاي محاسباتي يا Computational Grid از آن جا كه نياز زيادي به قدرت پردازندهها دارند، بايد از ماشينهايي با قدرت بسيار بالا استفاده نمايند.
يكي ديگر از انواع Gridها، سيستمهاي جوينده منابع يا Scavenging Grid است. اين سيستمها از تعداد زيادي كامپيوتر شخصي استفاده ميكنند و بهصورت مداوم بهدنبال ظرفيتها، منابع آزاد و چرخه پردازنده (CPU cycle) كامپيوترهاي متصل به Grid هستند و از اين منابع استفاده مينمايند. البته صاحبان اين كامپيوترهاي شخصي بايد قبلاً اجازه استفاده از منابع بدون استفاده خود را بدهند.
Grid Computing ميتواند مزاياي زيادي براي مديران و برنامهنويسان داشته باشد. مثلاً با آن ميتوان برنامههايي كه نياز بهحافظه زيادي دارند را اجرا نمود و به اطلاعات، دسترسي آسانتري پيدا كرد. اصولا ًGrid Computingميتواند بهسازمانها و شركتهاي بزرگي كه سرمايه هنگفتي را در IT هزينه كردهاند، كمك كند از سيستمهاي خود حداكثر استفاده را ببرند.
فناوريهاي Grid در واقع ميتوانند از منابع و سيستمهاي غيرمتمركز پشتيباني كنند و امكان ارتباط سيستمها را با هم فراهم سازند. وقتي براي اولين بار فناوري Grid ابداع شد، هدف آن تنها بهاشتراك گذاشتن منابع سيستم و در اختيارداشتن سيستميقدرتمند بود و بهطور كلي بيشتر در اختيار مؤسسات تحقيقاتي قرار داشت. اما امروزه از Grid توقع بيشتري ميرود و اهميت بيشتري پيدا كرده است؛ بهويژه در تجارت الكترونيك و سيستمهاي تجاري غيرمتمركز و توزيعيافته. به عنوان نمونه، مدل تجارت الكترونيك B2B را در نظر بگيريد كه دو مؤسسه تجاري اطلاعات خود را از طريق اينترنت با هم مبادله ميكنند. Grid نيز ميتواند كاري مشابه را انجام دهد و دو يا چند سيستم تجاري را بههم مرتبط سازد. بهطوري كه بتوانند اطلاعات خود را بهاشتراك بگذارند. فناوري Grid همچنين ميتواند راهحل مناسبي براي افزايش دسترسي، قابليت اطمينان و امنيت سيستمهاي غيرمتمركز نيز باشد.
Globus با در اختيار گذاشتن APIها و فايلهاي Header زبان C براي ساختن و كامپايل برنامهها به برنامهنويسان اجازه ميدهد سيستمهاي خود را به Grid متصل نمايند و به مديران امكان ميدهد منابع متصل به Grid را بهراحتي مديريت كنند.
اضافه براين، Globus با در اختيار گذاشتن Componentهايي مخصوص، كار مديران Grid را آسانتر ميكند. مثلاًGlobus يك ابزار بسيار كارا بهنام Commodity Grid) COG) كه زبانهاي برنامهنويسي مانند Python، جاوا و فناوريهاي روز مانند سرويسهاي وب، كوربا و RMI را ميشناسد و ميتواند در دو بخش تهيه نرمافزارهاي سازگار با Grid و مديريت سيستمهاي Grid به ما كمك كند. البته نسخه 2.2 ابزار Globus در برخي موارد ضعفهايي نيز دارد.
اين نسخه از سرويسهايي مثل مديريت Life-Cycle يا چرخه زندگي نرمافزار و سيستمهاي ذخيره و بازيابي پشتيباني نميكند. البته نسخه جديد Globus يعني نسخه 3 از آن جا كه سعي داشته است با معماري باز سرويسهاي Grid يا همان the Open Grid Services Architecture( OGSA) همخواني داشته باشد، توانستهاست بسياري از نقاط ضعف نسخه قبلي را رفع كند.
- رابط كاربر
- اجزاي امنيت
- مديريت كنترل كار سيستم (Workload management)
- زمانبند (Scheduler)
- مديريت اطلاعات (Data Management)
- مديريت منابع (Resource management)
در اين قسمت بهصورت مختصر در مورد هر يك از اين اجزا توضيح داده ميشود. دسترسي به اطلاعات در Grid اهميت شاياني دارد و رابط كاربر يا User Interface اين مسئوليت مهم را عهدهدار است. رابط كاربر ميتواند يا در برنامهاي كه كاربر از آن مستقيما استفاده ميكند يا در ابزارهاي مديريتي Grid كه مورد استفاده مدير سيستم است، نقش ايفا كند. همانطور كه شما براي استفاده از برق فقط وسيله برقي خود را به پريز برق متصل ميكنيد و لازم نيست از مكان منبع يا منابع اصلي اين قدرت اطلاعي داشته باشيد، استفاده كننده سيستم Grid نيز الزاماً نبايد از پيچيدگيهاي داخل اين سيستمها مطلع باشد. مثال ديگر اينكه، شما از مرورگر وب جهت استفاده از اينترنت استفاده ميكنيد؛ بدون اينكه از مكان سرور وب سايت اطلاعي داشته باشيد و تنها با وارد كردن آدرس سايت موردنظر، وب سايت آن در مرورگر نمايش داده ميشود. اينترفيس Grid نيز بايد مانند مرورگر باشد. يعني استفادهكننده Grid نيز از پيچيدگيهاي اين سيستم اطلاعاتي ندارد و فقط با ورود يك پارامتر ورودي، يك خروجي دريافت ميكند. (شكل 1)
كامپيوترها در Grid به شبكه متصلند. اين سيستمها همچنين ميتوانند حاوي اطلاعات بسيار مهم و حساسي باشند. در نتيجه امنيت را ميتوان يكي از مهمترين اجزايي اين سيستمها دانست كه خود حاوي اجزاي فرعي مانند احراز هويت (authentication)، اختيارات (authorization) و رمزدهي (encryption) است.
مثلاً ابزار Globus حاوي يك Component به نام Grid Security Infrastructure( GSI) يا ساختار زير بنايي امنيت Grid است كه مسئوليت امنيت در محيط را برعهده دارد. GSI حاوي يك SSL باز است. در نتيجه وقتي يك استفاده كننده يك بار بهصورت مجاز به سيستم راه پيدا كرد، يك Proxy Certificate براي كاربر به وجود ميآيد و براي آن كاربر در نظر گرفته ميشود. GSI در درگاه Grid قرار دارد. (شكل 2)
استفاده كننده از يك سيستم Grid بايد از منابع موجود و قابل دسترس در سيستم اطلاع داشته باشد. مديريت كنترل كار سيستم يا Workload Management ميتواند اين كار را به راحتي انجام دهد. درخواستكننده سرويس ميتواند با ارتباط با اين قسمت از منابع آزاد سيستم، ظرفيت هر منبع و موقعيت آنها اطلاع حاصل نمايد. در سيستمهاي Grid كه توسط Globus هدايت ميشوند، زماني كه يك استفاده كننده شناسايي شد و برنامه موردنظر آن كاربر اجرا گرديد، با توجه به نوع نرمافزار و پارامترهاي ورودي كاربر، سيستم Grid بهدنبال منابع آزاد موجود در شبكه ميگردد.
اين وظيفه اغلب به عهده Broker ها است. Globus بهصورت عادي، Broker ندارند، اما از سرويسهايي مانند
(Grid Information Service) GIS و Monitoring and Discovery Service( MDS) را پشتيباني ميكنند كه بهسيستم اطلاع ميدهند كدام منبع يا منابع قادرند منابع خود را در اختيار بگذارند. شكل 3 موقعيت اين سرويسها را نمايش ميدهد.
يكي ديگر از اجزايي كه در سيستمهاي Grid بسيار اهميت دارد، زمانبند يا Scheduler است. در اين سيستمها از آن جايي كه بايد هر كاري را كامپيوتر مشخصي بهعهده بگيرد و هر كامپيوتر بايد مدت زماني را در اختيار Grid قرار دهد، سيستم نياز به يك زمانبند دارد. اين زمانبند ميتواند بسيار ساده باشد، اما اكثر زمانبندها بايد بتوانند كارها را اولويتبندي كنند و سيستم را كنترل نمايند. در ابزار Globus زمانبندهايي با قابليت بالا وجود ندارند، اما تعدادي سازوكار زمانبند وجود دارد كه كار زمانبندهاي دقيق را تا حدي انجام ميدهد. شكل 4 موقعيت زمانبندها را در Grid نشان ميدهد.
جزء ديگر Gridها، مديريت اطلاعات اين سيستمها است كه وظيفه ذخيرهسازي اطلاعات را در سيستم به عهده دارد. اين بخش وظيفه محافظت از اطلاعات و جابهجايي اين اطلاعات در تماميدستگاههاي متصل به Grid را عهدهدار است. جابهجايي و انتقال اطلاعات كار بسيار مشكلي است و اطلاعات بايد از كانالي مطمئن منتقل شود.
با استفاده از ابزار Globus و بخش مديريت اطلاعات اين ابزار، ميتوان محيطي امن براي انتقال اين اطلاعات به وجود آورد. اين قسمت از Globus به Grid Access to Secondary Storage) GASS) معروف است كه امكاناتي مانندGridFTP را دربردارد كه مانند FTP است، اما امكانات امنيتي مانند GSI را نيز دربرميگيرد. در نتيجه وقتي يك كاربرProxy Certificate را داشتهباشد، ميتواند از GridFTP جهت انتقال فايلها استفاده كند؛ بدون آن كه نياز داشته باشد دوباره به سيستم وارد شود. شكل 5 موقعيت GASS را در Grid نشان ميدهد.
از ديگر بخشهاي مهم Grid، بخش مديريت منابع است كه به Grid Resource Allocation Manager) GRAM) شهرت دارد. اين بخش وظايف هر دستگاه را مشخص ميكند و باعث هماهنگي دستگاههاي متصل به شبكه در انجامدادن امور محوله است. شكل 6 محل قرار گرفتن GRAM را نشان ميدهد.
گروه جهاني Grid با ارائه معماري باز سرويسهاي Grid يا Open Grid Services Architecture) OGSA) و جمعآوري استانداردهاي باز، مانند زبان تعريف سرويسهاي وب يا Web Services Description Language) WSDL) توانسته است استانداردي آسان و در عين حال دقيق براي سيستمهاي Grid تعريف كند. از آن گذشته، OGSA از تجربيات به دست آمده از پروژههاي بزرگي مانند Globus نيز بهرهمند است. شكل 7 ساختار معماري اين استاندارد را نشان ميدهد.
استانداردهاي باز و پروتكلهاي اين معماري راه توليد سرويسها را نشان ميدهند. اين سرويسها قلب Grid هستند و در واقع به استفادهكننده اجازه ميدهند با Grid كار كند. اين سرويسها عبارتند از:
- سرويس درخواستهاي پردازنده مركزي
- سرويس مديريت كنترل كار سيستم و sessionها
- سرويس جستوجوي اطلاعات
- سرويس تعيين پهناي باند شبكه
- سرويس مديريت اطلاعات
وقتي متخصصان Grid درباره شروع شدن يك سرويس صحبت ميكنند، مثلاً شروع شدن سرويس جستوجوي اطلاعات، منظور يك نمونه يا Instance سرويس است كه ميتواند تكاليف بلند مدت يا موقتي داشته باشد. اين سرويسها ميتوانند بهصورت فعال يا غير فعال باشند و زمان فعاليت را ميتوان با زمانبند يا بهصورت اختياري تعيين نمود. سرويسي خوب است كه بتواند بهراحتي امكانات خود را در اختيار استفاده كننده قرار دهد. مثلاً وقتي يك وسيله الكترونيكي را به پريز برق متصل ميكنيد، براي شما هيچ اهميتي ندارد كه برق مورد نيازتان از كجا ميآيد؛ فقط ميخواهيد از برق استفاده كنيد.
سرويس خوب Grid نيز سرويسي است كه بتواند سرويس موردنظر استفادهكننده را بهراحتي دراختيار او قرار دهد و استفادهكننده بتواند به سادگي از آن استفاده كند. مثلا سرويس بانكاطلاعاتي در Grid بايد بهصورتي عمل كند كه استفاده كننده فقط يك جستوجو وارد كند و جواب جستوجوي خود را بگيرد؛ بدون اينكه از جايگاه و عمليات بانكاطلاعاتي خبر داشته باشد.
امروزه بيشتر نرمافزارها ميتوانند روي كامپيوترهاي شخصي يا حتي سرورها كار كنند. يعني در واقع اين نرمافزارها از يك پردازنده مركزي استفاده ميكنند، اما در سيستمهاي Gird، ممكن است چند پردازنده اين كار را بهعهده بگيرند و چند سيستم با هم كار كنند. البته هر سيستم يك كار را انجام ميدهد. سپس نتايج محاسبات جمع ميشود و به درخواست كننده سرويس برگشت داده ميشود.
وقتي يك نرمافزار يا مجموعهاي از نرمافزارها بخواهند از Grid استفاده كنند، مسئله بهاشتراك گذاشتن اطلاعات، تكه تكه كردن اين اطلاعات، انتقال آن با امنيت كامل و مديريت اين اطلاعات كار دشواري است و كاربر Grid فقط اطلاعاتي را وارد ميكند و نميداند در داخل سيستم چه ميگذرد. در نتيجه اين سيستمها بايد طوري اين كار را انجام دهند كه كاربران Grid بدون نگراني از انتشار اطلاعات سري خود يا بروز اشتباه در محاسبات، به Grid اطمينان كنند.
امنيت سيستمهاي Grid نيز بسيار حائز اهميت است. كاربران اين سيستمها بايد از دسترسي بهمنابع ايشان در سيستم اطلاع حاصل كنند و بدانند كدام كاربر بهاطلاعات آنها دسترسي دارد. اضافه بر اين، قابليت اطمينان و سرعت اين سيستمها بسيار اهميت دارد. اگر سيستمهاي Grid از سرعت كافي برخوردار نباشد، كاربران Grid از استفاده از اين سيستمها دلسرد ميشوند.
به علاوه، براي ساختن يك Grid بهابزارهايي نيز نياز خواهيد داشت: ابزارهاي زيربنايي مثل زمانبندها، ابزارهاي مديريت منابع، مديريت امنيتي و ابزارهاي انتقال فايل مانند GridFTP كه قبلاً توضيح داده شد. ابزار ديگري كه حتما بهآن نياز خواهيد داشت، Grid Directory Services( GDS) است كه فهرست سرويسهاي آماده را در اختيار دارد. بهعلاوه، به APIهايي نيز نياز داريد كه برنامههاي شما را با Grid هماهنگ سازند و بهبرنامههاي شما امكان دهند در محيط Grid كار كنند. خواندن منابع زير نيز شما را در يادگيري بيشتر Grid Computing ياري مينمايد:
منابع :
انجمن برنامه نويسي .NET
http://www.p2p.dotnetsource.com/default.aspx?g=posts&t=9538 www.gridcomputing.com/ingplanet.com
http://www.gridcomputingplanet.com/features/article.php/3396741
www-128.ibm.com/developerworks/grid/library/grfuture.html
آنها اين كار را با قطعه قطعه كردن اين عمليات و سپردن هر قطعه بهكامپيوتري در شبكه انجام ميدهند. به عنوان مثال وقتي شما از كامپيوترتان براي مدتي استفاده نميكنيد و كامپيوتر شما به اصطلاح بهوضعيت محافظ نمايشگر يا Screensaver ميرود، از پردازشگر كامپيوتر شما هيچ استفادهاي نميشود. اما با استفاده از شبكههاي Grid ميتوان از حداكثر تواناييهاي پردازشگرها استفاده نمود و برنامهاي را در كامپيوتر قرار داد كه وقتي از سيستم استفادهاي نميشود، اين برنامه بتواند از نيروي بلااستفاده دستگاه بهره بگيرد و قسمتي از محاسبات بزرگ عملياتي را انجام دهد.
در اين مقاله اين پديده در فناوري اطلاعات مورد بحث قرار ميگيرد و اهميت استفاده از اين فناوري، پيچيدگيها، اجزاي تشكيل دهنده و استانداردهاي اين مدل بررسي ميشود و نشان داده خواهد شد كه با استفاده از اين مدل چگونه در وقت و زمان شما صرفهجويي ميشود.
گفتني است در حال حاضر بزرگترين شبكه Grid جهان در خدمت پروژه SETI@home براي يافتن حيات هوشمند فرازميني قرار دارد. در شماره 55 ماهنامه شبكه مصاحبهاي اختصاصي با دكتر دان ورتيمر، دانشمند ارشد اين پروژه توسط سردبير ماهنامه انجام شدهبود.
امروزه فناوري جديدي به نام Grid به عرصه ارتباطات الكترونيك قدم نهاده است كه براساسآن با دانلود كردن يك محافظ نمايشگر مخصوص ميتوانيم بهكامپيوترهاي شخصي خود اجازه دهيم كه وقتي از آن استفاده نميكنيم، به شبكه جهاني متصل شوند و به سيستمهاي بزرگ تحقيقاتي اجازه دهند از منابع آزاد و بلااستفاده سيستم ما استفاده نمايند.
Grid computing چيست ؟
امروزه تقريباً تمامي شركتها و سازمانهاي بزرگ، براي تبادل اطلاعات و فرستادن ايميل بهمشتريان خود از اينترنت استفاده ميكنند. پرسش اين است كه آيا بهراستي امكاناتي كه اينترنت در اختيار ما قرار ميدهد، فقط در فرستادن ايميل و داشتن وبسايت خلاصه ميشود؟ آيا اينترنت امكان استفاده از منابع سختافزاري سيستمهاي ديگر را نيز به ما ميدهد؟ پس از اينترنت چه ابزار يا بستري خواهد آمد؟
امروزه فناوري جديدي به نام Grid به عرصه ارتباطات قدم نهاده است كه براساس آن با دانلودكردن يك محافظ نمايشگر مخصوص ميتوانيم بهكامپيوترهاي شخصي خود اجازه دهيم كه وقتي از آن استفاده نميكنيم، به شبكه جهاني متصل شوند و به سيستمهاي بزرگ تحقيقاتي اجازه دهند از منابع آزاد و بلااستفاده سيستم ما استفاده نمايد. كامپيوترهاي امروزي مانند مغز انسان معمولا از بخش كوچكي از تواناييهاي خود استفاده ميكنند و اغلب به صورت غيرفعالند و منتظر اطلاعات ورودي ميمانند.
تصور كنيد كه اگر از منابع سختافزاري اين همه كامپيوتر غيرفعال استفاده شود و همه در يك كامپيوتر جمع شود، چه دستگاه پرقدرتي خواهيم داشت. Grid Computing با كمك به اينترنت زمينهاي را فراهم آورده است كه بتوان با استفاده از آن، از منابع سختافزاري سيستمهاي ديگر نيز استفاده نماييم.
ممكن است Grid براي افراد مختلف معاني متفاوتي داشته باشد، اما اگر بخواهيم تعريف سادهاي از آن داشته باشيم، ميتوانيم بگوييم Grid Computing در واقع بهشما اجازه ميدهد با استفاده از منابع سيستمهاي متصل به شبكه و ايجاد يك منبع بزرگ از سرويسها و امكانات اين سيستمها، مركزي بزرگ و قدرتمند به وجود آوريم كه توانايي انجامدادن عمليات بسيار پيچيدهاي را داشته باشد كه يك سيستم بهتنهايي نميتواند انجام دهد. بهنحوي كه از ديد استفادهكنندگان اين سيستمهاي بزرگ، اين عمليات تنها از طريق يك سيستم انجام ميشود.
Grid Computing در حقيقت نسل جديدي از شبكههاي توزيع يافته است و همانند اينترنت به كاربران خود اجازه ميدهد فايلها را به اشتراك بگذارند. بهعلاوه، منابع مشتركي از اطلاعات را براي استفادهكنندگان فراهم ميكند. با استفاده از اين سيستمها ميتوان منابع كامپيوترهاي ناهمگون را بهاشتراك گذاشت. هدف اصلي Grid استفاده از اين منابع مشترك مانند قدرت پردازنده، پهناي باند، پايگاه اطلاعاتي و در اختيار گذاردن آن براي كامپيوتر مركزي است.
انواع Grid
Gridهاي اطلاعاتي يا Data Grid موظفند اطلاعات را ذخيره كنند و آنها را در اختيار كاربران قرار دهند. كاربران اين سيستمها بدون آنكه از موقعيت جغرافيايي و مكاني اين اطلاعات آگاه باشند، به اطلاعات دسترسي دارند. مثلاً تصور كنيد كه دو دانشگاه در دو سوي دنيا يكي در ايران و ديگري در انگلستان روي يك مطلب علميمشترك تحقيق ميكنند و هر يك از آنها اطلاعات خاص خود را ذخيره ميكند و ميخواهد دانشگاه ديگر نيز به برخي از اين اطلاعات (نه تماميآن) دسترسي داشته باشد. اين دانشگاهها ميتوانند از يك Data Grid استفاده كنند و اطلاعات خود را با ضريب امنيتي بالايي با هم بهاشتراك بگذارند.
در اين نوع Grid دستگاههاي متصل بهسيستم نياز بهقدرت زياد ندارند و فقط مسئول به اشتراك گذاشتن اطلاعات هستند. از طرف ديگر Grid هاي محاسباتي يا Computational Grid از آن جا كه نياز زيادي به قدرت پردازندهها دارند، بايد از ماشينهايي با قدرت بسيار بالا استفاده نمايند.
يكي ديگر از انواع Gridها، سيستمهاي جوينده منابع يا Scavenging Grid است. اين سيستمها از تعداد زيادي كامپيوتر شخصي استفاده ميكنند و بهصورت مداوم بهدنبال ظرفيتها، منابع آزاد و چرخه پردازنده (CPU cycle) كامپيوترهاي متصل به Grid هستند و از اين منابع استفاده مينمايند. البته صاحبان اين كامپيوترهاي شخصي بايد قبلاً اجازه استفاده از منابع بدون استفاده خود را بدهند.
اهميت Grid Computing
Grid Computing ميتواند مزاياي زيادي براي مديران و برنامهنويسان داشته باشد. مثلاً با آن ميتوان برنامههايي كه نياز بهحافظه زيادي دارند را اجرا نمود و به اطلاعات، دسترسي آسانتري پيدا كرد. اصولا ًGrid Computingميتواند بهسازمانها و شركتهاي بزرگي كه سرمايه هنگفتي را در IT هزينه كردهاند، كمك كند از سيستمهاي خود حداكثر استفاده را ببرند.
فناوريهاي Grid در واقع ميتوانند از منابع و سيستمهاي غيرمتمركز پشتيباني كنند و امكان ارتباط سيستمها را با هم فراهم سازند. وقتي براي اولين بار فناوري Grid ابداع شد، هدف آن تنها بهاشتراك گذاشتن منابع سيستم و در اختيارداشتن سيستميقدرتمند بود و بهطور كلي بيشتر در اختيار مؤسسات تحقيقاتي قرار داشت. اما امروزه از Grid توقع بيشتري ميرود و اهميت بيشتري پيدا كرده است؛ بهويژه در تجارت الكترونيك و سيستمهاي تجاري غيرمتمركز و توزيعيافته. به عنوان نمونه، مدل تجارت الكترونيك B2B را در نظر بگيريد كه دو مؤسسه تجاري اطلاعات خود را از طريق اينترنت با هم مبادله ميكنند. Grid نيز ميتواند كاري مشابه را انجام دهد و دو يا چند سيستم تجاري را بههم مرتبط سازد. بهطوري كه بتوانند اطلاعات خود را بهاشتراك بگذارند. فناوري Grid همچنين ميتواند راهحل مناسبي براي افزايش دسترسي، قابليت اطمينان و امنيت سيستمهاي غيرمتمركز نيز باشد.
ابزار قدرتمند Globus
Globus با در اختيار گذاشتن APIها و فايلهاي Header زبان C براي ساختن و كامپايل برنامهها به برنامهنويسان اجازه ميدهد سيستمهاي خود را به Grid متصل نمايند و به مديران امكان ميدهد منابع متصل به Grid را بهراحتي مديريت كنند.
اضافه براين، Globus با در اختيار گذاشتن Componentهايي مخصوص، كار مديران Grid را آسانتر ميكند. مثلاًGlobus يك ابزار بسيار كارا بهنام Commodity Grid) COG) كه زبانهاي برنامهنويسي مانند Python، جاوا و فناوريهاي روز مانند سرويسهاي وب، كوربا و RMI را ميشناسد و ميتواند در دو بخش تهيه نرمافزارهاي سازگار با Grid و مديريت سيستمهاي Grid به ما كمك كند. البته نسخه 2.2 ابزار Globus در برخي موارد ضعفهايي نيز دارد.
اين نسخه از سرويسهايي مثل مديريت Life-Cycle يا چرخه زندگي نرمافزار و سيستمهاي ذخيره و بازيابي پشتيباني نميكند. البته نسخه جديد Globus يعني نسخه 3 از آن جا كه سعي داشته است با معماري باز سرويسهاي Grid يا همان the Open Grid Services Architecture( OGSA) همخواني داشته باشد، توانستهاست بسياري از نقاط ضعف نسخه قبلي را رفع كند.
نگاهي بهاجزاي Grid
- رابط كاربر
- اجزاي امنيت
- مديريت كنترل كار سيستم (Workload management)
- زمانبند (Scheduler)
- مديريت اطلاعات (Data Management)
- مديريت منابع (Resource management)
در اين قسمت بهصورت مختصر در مورد هر يك از اين اجزا توضيح داده ميشود. دسترسي به اطلاعات در Grid اهميت شاياني دارد و رابط كاربر يا User Interface اين مسئوليت مهم را عهدهدار است. رابط كاربر ميتواند يا در برنامهاي كه كاربر از آن مستقيما استفاده ميكند يا در ابزارهاي مديريتي Grid كه مورد استفاده مدير سيستم است، نقش ايفا كند. همانطور كه شما براي استفاده از برق فقط وسيله برقي خود را به پريز برق متصل ميكنيد و لازم نيست از مكان منبع يا منابع اصلي اين قدرت اطلاعي داشته باشيد، استفاده كننده سيستم Grid نيز الزاماً نبايد از پيچيدگيهاي داخل اين سيستمها مطلع باشد. مثال ديگر اينكه، شما از مرورگر وب جهت استفاده از اينترنت استفاده ميكنيد؛ بدون اينكه از مكان سرور وب سايت اطلاعي داشته باشيد و تنها با وارد كردن آدرس سايت موردنظر، وب سايت آن در مرورگر نمايش داده ميشود. اينترفيس Grid نيز بايد مانند مرورگر باشد. يعني استفادهكننده Grid نيز از پيچيدگيهاي اين سيستم اطلاعاتي ندارد و فقط با ورود يك پارامتر ورودي، يك خروجي دريافت ميكند. (شكل 1)
كامپيوترها در Grid به شبكه متصلند. اين سيستمها همچنين ميتوانند حاوي اطلاعات بسيار مهم و حساسي باشند. در نتيجه امنيت را ميتوان يكي از مهمترين اجزايي اين سيستمها دانست كه خود حاوي اجزاي فرعي مانند احراز هويت (authentication)، اختيارات (authorization) و رمزدهي (encryption) است.
مثلاً ابزار Globus حاوي يك Component به نام Grid Security Infrastructure( GSI) يا ساختار زير بنايي امنيت Grid است كه مسئوليت امنيت در محيط را برعهده دارد. GSI حاوي يك SSL باز است. در نتيجه وقتي يك استفاده كننده يك بار بهصورت مجاز به سيستم راه پيدا كرد، يك Proxy Certificate براي كاربر به وجود ميآيد و براي آن كاربر در نظر گرفته ميشود. GSI در درگاه Grid قرار دارد. (شكل 2)
استفاده كننده از يك سيستم Grid بايد از منابع موجود و قابل دسترس در سيستم اطلاع داشته باشد. مديريت كنترل كار سيستم يا Workload Management ميتواند اين كار را به راحتي انجام دهد. درخواستكننده سرويس ميتواند با ارتباط با اين قسمت از منابع آزاد سيستم، ظرفيت هر منبع و موقعيت آنها اطلاع حاصل نمايد. در سيستمهاي Grid كه توسط Globus هدايت ميشوند، زماني كه يك استفاده كننده شناسايي شد و برنامه موردنظر آن كاربر اجرا گرديد، با توجه به نوع نرمافزار و پارامترهاي ورودي كاربر، سيستم Grid بهدنبال منابع آزاد موجود در شبكه ميگردد.
اين وظيفه اغلب به عهده Broker ها است. Globus بهصورت عادي، Broker ندارند، اما از سرويسهايي مانند
(Grid Information Service) GIS و Monitoring and Discovery Service( MDS) را پشتيباني ميكنند كه بهسيستم اطلاع ميدهند كدام منبع يا منابع قادرند منابع خود را در اختيار بگذارند. شكل 3 موقعيت اين سرويسها را نمايش ميدهد.
يكي ديگر از اجزايي كه در سيستمهاي Grid بسيار اهميت دارد، زمانبند يا Scheduler است. در اين سيستمها از آن جايي كه بايد هر كاري را كامپيوتر مشخصي بهعهده بگيرد و هر كامپيوتر بايد مدت زماني را در اختيار Grid قرار دهد، سيستم نياز به يك زمانبند دارد. اين زمانبند ميتواند بسيار ساده باشد، اما اكثر زمانبندها بايد بتوانند كارها را اولويتبندي كنند و سيستم را كنترل نمايند. در ابزار Globus زمانبندهايي با قابليت بالا وجود ندارند، اما تعدادي سازوكار زمانبند وجود دارد كه كار زمانبندهاي دقيق را تا حدي انجام ميدهد. شكل 4 موقعيت زمانبندها را در Grid نشان ميدهد.
جزء ديگر Gridها، مديريت اطلاعات اين سيستمها است كه وظيفه ذخيرهسازي اطلاعات را در سيستم به عهده دارد. اين بخش وظيفه محافظت از اطلاعات و جابهجايي اين اطلاعات در تماميدستگاههاي متصل به Grid را عهدهدار است. جابهجايي و انتقال اطلاعات كار بسيار مشكلي است و اطلاعات بايد از كانالي مطمئن منتقل شود.
با استفاده از ابزار Globus و بخش مديريت اطلاعات اين ابزار، ميتوان محيطي امن براي انتقال اين اطلاعات به وجود آورد. اين قسمت از Globus به Grid Access to Secondary Storage) GASS) معروف است كه امكاناتي مانندGridFTP را دربردارد كه مانند FTP است، اما امكانات امنيتي مانند GSI را نيز دربرميگيرد. در نتيجه وقتي يك كاربرProxy Certificate را داشتهباشد، ميتواند از GridFTP جهت انتقال فايلها استفاده كند؛ بدون آن كه نياز داشته باشد دوباره به سيستم وارد شود. شكل 5 موقعيت GASS را در Grid نشان ميدهد.
از ديگر بخشهاي مهم Grid، بخش مديريت منابع است كه به Grid Resource Allocation Manager) GRAM) شهرت دارد. اين بخش وظايف هر دستگاه را مشخص ميكند و باعث هماهنگي دستگاههاي متصل به شبكه در انجامدادن امور محوله است. شكل 6 محل قرار گرفتن GRAM را نشان ميدهد.
Grid از ديد برنامه نويسان
گروه جهاني Grid با ارائه معماري باز سرويسهاي Grid يا Open Grid Services Architecture) OGSA) و جمعآوري استانداردهاي باز، مانند زبان تعريف سرويسهاي وب يا Web Services Description Language) WSDL) توانسته است استانداردي آسان و در عين حال دقيق براي سيستمهاي Grid تعريف كند. از آن گذشته، OGSA از تجربيات به دست آمده از پروژههاي بزرگي مانند Globus نيز بهرهمند است. شكل 7 ساختار معماري اين استاندارد را نشان ميدهد.
استانداردهاي باز و پروتكلهاي اين معماري راه توليد سرويسها را نشان ميدهند. اين سرويسها قلب Grid هستند و در واقع به استفادهكننده اجازه ميدهند با Grid كار كند. اين سرويسها عبارتند از:
- سرويس درخواستهاي پردازنده مركزي
- سرويس مديريت كنترل كار سيستم و sessionها
- سرويس جستوجوي اطلاعات
- سرويس تعيين پهناي باند شبكه
- سرويس مديريت اطلاعات
وقتي متخصصان Grid درباره شروع شدن يك سرويس صحبت ميكنند، مثلاً شروع شدن سرويس جستوجوي اطلاعات، منظور يك نمونه يا Instance سرويس است كه ميتواند تكاليف بلند مدت يا موقتي داشته باشد. اين سرويسها ميتوانند بهصورت فعال يا غير فعال باشند و زمان فعاليت را ميتوان با زمانبند يا بهصورت اختياري تعيين نمود. سرويسي خوب است كه بتواند بهراحتي امكانات خود را در اختيار استفاده كننده قرار دهد. مثلاً وقتي يك وسيله الكترونيكي را به پريز برق متصل ميكنيد، براي شما هيچ اهميتي ندارد كه برق مورد نيازتان از كجا ميآيد؛ فقط ميخواهيد از برق استفاده كنيد.
سرويس خوب Grid نيز سرويسي است كه بتواند سرويس موردنظر استفادهكننده را بهراحتي دراختيار او قرار دهد و استفادهكننده بتواند به سادگي از آن استفاده كند. مثلا سرويس بانكاطلاعاتي در Grid بايد بهصورتي عمل كند كه استفاده كننده فقط يك جستوجو وارد كند و جواب جستوجوي خود را بگيرد؛ بدون اينكه از جايگاه و عمليات بانكاطلاعاتي خبر داشته باشد.
پيچيدگيها
امروزه بيشتر نرمافزارها ميتوانند روي كامپيوترهاي شخصي يا حتي سرورها كار كنند. يعني در واقع اين نرمافزارها از يك پردازنده مركزي استفاده ميكنند، اما در سيستمهاي Gird، ممكن است چند پردازنده اين كار را بهعهده بگيرند و چند سيستم با هم كار كنند. البته هر سيستم يك كار را انجام ميدهد. سپس نتايج محاسبات جمع ميشود و به درخواست كننده سرويس برگشت داده ميشود.
وقتي يك نرمافزار يا مجموعهاي از نرمافزارها بخواهند از Grid استفاده كنند، مسئله بهاشتراك گذاشتن اطلاعات، تكه تكه كردن اين اطلاعات، انتقال آن با امنيت كامل و مديريت اين اطلاعات كار دشواري است و كاربر Grid فقط اطلاعاتي را وارد ميكند و نميداند در داخل سيستم چه ميگذرد. در نتيجه اين سيستمها بايد طوري اين كار را انجام دهند كه كاربران Grid بدون نگراني از انتشار اطلاعات سري خود يا بروز اشتباه در محاسبات، به Grid اطمينان كنند.
امنيت سيستمهاي Grid نيز بسيار حائز اهميت است. كاربران اين سيستمها بايد از دسترسي بهمنابع ايشان در سيستم اطلاع حاصل كنند و بدانند كدام كاربر بهاطلاعات آنها دسترسي دارد. اضافه بر اين، قابليت اطمينان و سرعت اين سيستمها بسيار اهميت دارد. اگر سيستمهاي Grid از سرعت كافي برخوردار نباشد، كاربران Grid از استفاده از اين سيستمها دلسرد ميشوند.
چگونه Grid بسازيم ؟
به علاوه، براي ساختن يك Grid بهابزارهايي نيز نياز خواهيد داشت: ابزارهاي زيربنايي مثل زمانبندها، ابزارهاي مديريت منابع، مديريت امنيتي و ابزارهاي انتقال فايل مانند GridFTP كه قبلاً توضيح داده شد. ابزار ديگري كه حتما بهآن نياز خواهيد داشت، Grid Directory Services( GDS) است كه فهرست سرويسهاي آماده را در اختيار دارد. بهعلاوه، به APIهايي نيز نياز داريد كه برنامههاي شما را با Grid هماهنگ سازند و بهبرنامههاي شما امكان دهند در محيط Grid كار كنند. خواندن منابع زير نيز شما را در يادگيري بيشتر Grid Computing ياري مينمايد:
منابع :
انجمن برنامه نويسي .NET
http://www.p2p.dotnetsource.com/default.aspx?g=posts&t=9538 www.gridcomputing.com/ingplanet.com
http://www.gridcomputingplanet.com/features/article.php/3396741
www-128.ibm.com/developerworks/grid/library/grfuture.html